﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SharpMUD.Framework.Services;

namespace SharpMUD.Framework.ComponentModel
{
    public interface IServicesHost : IServiceProvider
    {
        IEnumerable<IService> Services {get;}

        new IService GetService(Type serviceType);
        T GetService<T>() where T : IService;

        event System.EventHandler<ServiceAddRemoveEventArgs> ServiceAdded;
        event System.EventHandler<ServiceAddRemoveEventArgs> ServiceRemoved;
    }
}
